From: Keir Fraser Date: Fri, 23 Oct 2009 09:00:22 +0000 (+0100) Subject: libxc: fix a few memory leaks X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13185 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=7de68b16110e63e9a19e6410cc8dab0abd95d5ec;p=xen.git libxc: fix a few memory leaks running qemu with valgrind I found I couple of small memory leaks in libxc, this patch fixes them. Signed-off-by: Stefano Stabellini --- diff --git a/tools/libxc/xc_linux.c b/tools/libxc/xc_linux.c index b79a57fe2a..fb8c61c573 100644 --- a/tools/libxc/xc_linux.c +++ b/tools/libxc/xc_linux.c @@ -95,6 +95,7 @@ void *xc_map_foreign_range(int xc_handle, uint32_t dom, xen_pfn_t *arr; int num; int i; + void *ret; num = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; arr = calloc(num, sizeof(xen_pfn_t)); @@ -102,7 +103,9 @@ void *xc_map_foreign_range(int xc_handle, uint32_t dom, for ( i = 0; i < num; i++ ) arr[i] = mfn + i; - return xc_map_foreign_batch(xc_handle, dom, prot, arr, num); + ret = xc_map_foreign_batch(xc_handle, dom, prot, arr, num); + free(arr); + return ret; } void *xc_map_foreign_ranges(int xc_handle, uint32_t dom, @@ -114,6 +117,7 @@ void *xc_map_foreign_ranges(int xc_handle, uint32_t dom, int num; int i; int j; + void *ret; num_per_entry = chunksize >> PAGE_SHIFT; num = num_per_entry * nentries; @@ -123,7 +127,9 @@ void *xc_map_foreign_ranges(int xc_handle, uint32_t dom, for ( j = 0; j < num_per_entry; j++ ) arr[i * num_per_entry + j] = entries[i].mfn + j; - return xc_map_foreign_batch(xc_handle, dom, prot, arr, num); + ret = xc_map_foreign_batch(xc_handle, dom, prot, arr, num); + free(arr); + return ret; } static int do_privcmd(int xc_handle, unsigned int cmd, unsigned long data)